package com.ctshk.rpc.hotel.req;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Data
@ApiModel(value="HotelProductDataReq对象", description="酒店产品")
public class HotelProductDataReq implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "产品ID")
    private Long id;

    @ApiModelProperty(value = "所属店品牌主数据ID")
    private Long brandId;

    @ApiModelProperty(value = "所属店品牌主数据ID")
    private Long hotelId;

    @ApiModelProperty(value = "所属酒店品牌")
    private String brandName;

    @ApiModelProperty(value = "所属酒店名称")
    private String hotelName;

    @ApiModelProperty(value = "所属房间", required = true)
    private Long roomId;

    @ApiModelProperty(value = "产品名称")
    private String name;

    @ApiModelProperty(value = "是否含早")
    private Integer hasBreakfast;

    @ApiModelProperty(value = "供应商ID")
    private Long supplierId;

    @ApiModelProperty(value = "供应商名称")
    private String supplierName;

    @ApiModelProperty(value = "负责人ID")
    private Long chargeId;

    @ApiModelProperty(value = "负责人名称")
    private String chargeUser;

    @ApiModelProperty(value = "适用人群ID")
    private Long targetPopulationId;

    @ApiModelProperty(value = "适用人群")
    private String targetPopulation;

    @ApiModelProperty(value = "允许自由行打包")
    private Integer allowPackage;

    @ApiModelProperty(value = "开售时间类型")
    private Integer saleTimeType;

    @ApiModelProperty(value = "定时开售起始")
    private LocalDate saleBegin;

    @ApiModelProperty(value = "定时开售截至")
    private LocalDate saleEnd;

    @ApiModelProperty(value = "二次确认")
    private Integer isSecCheck;

    @ApiModelProperty(value = "取消政策")
    private Integer allowRefund;

    @ApiModelProperty(value = "预订须知")
    private String customerNotice;

    @ApiModelProperty(value = "预订服务费类型", required = true)
    private Integer reserveChargeType;

    @ApiModelProperty(value = "预订服务费", required = true)
    private BigDecimal reserveCharge;

    @ApiModelProperty(value = "中旅退改手续费类型", required = true)
    private Integer refundChargeType;

    @ApiModelProperty(value = "中旅退改手续费", required = true)
    private BigDecimal refundCharge;

    @ApiModelProperty(value = "税费与其他费用", required = true)
    private BigDecimal taxation;

    @ApiModelProperty(value = "产品状态")
    private Integer status;

    @ApiModelProperty(value = "提交状态(1=保存,2=保存并提交审批)")
    private Integer submitStatus;

    @ApiModelProperty(value = "酒店产品成本信息")
    private List<HotelProductCostAddReq> HotelProductCostDataReqs;
}
